\chapter{布局面板}

布局面板位于软件界面的左侧。布局面板以树的形式呈现工作站中各种物理对象，包括：机器人，几何模型，
智能组件等。

左键点击树节点可选中节点，选中的节点如果有对应的几何对象，在右侧的3D视图中会高亮显示。

右键点击树节点，显示节点的相关操作菜单。

\section{位姿菜单}
位姿菜单是一个通用菜单，有多种对象都有这个菜单。

\subsection{设置位姿}

为对象设置位姿，有几种参考坐标系可选。

\begin{itemize}
    \item 世界坐标系：界面位姿为世界坐标系中位姿。
    \item 本地坐标系：界面位姿为物体本地坐标系中的位姿。
    \item 父坐标系：如果对象有父对象（例如：属于一个装配体的零件），显示的位姿为相对于父对象的位姿。
        如果没有父对象，则等同于世界坐标系。
\end{itemize}

当点击应用按钮时，系统将界面位姿结合参考坐标系设置给对象。

\subsection{平移}
将对象沿着指定的坐标轴平移指定的距离。

参考坐标系可选世界坐标系和本地坐标系。

\subsection{旋转}
将对象围绕指定的坐标轴旋转指定的角度。

参考坐标系可选世界坐标系和本地坐标系。

\subsection{放置}
\subsubsection{一点法放置}
通过起始点和到达点定义移动的位移。

选择平移的坐标轴指定在哪些坐标轴的方向上移动。对象不会沿未选择的坐标轴方向移动。

\subsubsection{二点法放置}
选择的主点确定平移的位移。选择的X轴点确定源X轴和目标X轴的方向。旋转将源X轴转动至目标X轴的方向。

选择平移的坐标轴指定在哪些坐标轴的方向上移动。对象不会沿未选择的坐标轴方向移动。

\subsubsection{三点法放置}
选择的主点确定平移的位移。选择的X轴和Y轴上的点与主点一起确定一个坐标系。旋转将源坐标系转动至目标坐标系。

选择平移的坐标轴指定在哪些坐标轴的方向上移动。对象不会沿未选择的坐标轴方向移动。

\subsection{跟随机器人移动任务坐标系}
当为机器人设置位姿时，会出现此选项。

此选项指定将机器人的任务坐标系跟随机器人进行相同的移动。

\subsection{跟随机器人移动数据}
当为机器人设置位姿时，会出现此选项。

此选项指定将机器人的任务数据跟随机器人进行相同的移动。

\subsection{复制方向}
将对象的世界坐标系中的方向复制到剪贴板中，供后续应用复制的方向使用。

\subsection{应用复制的方向}
将之前复制的方向应用在对象上。

\section{移动对象}
在布局树中，对象具有结构上的层级关系。智能组件可以包含其他智能组件和几何模型。装配体可以包含其他装配体
和零件。

子对象在没有被安装时随父对象运动，如果被安装则随安装父对象运动。

\subsection{移动的规则}
移动主要遵循以下几点规则：
\begin{enumerate}
      \item 零件只能包含实体，且实体也只能被零件包含。
      \item 装配体可以包含零件或其他装配体。
      \item 智能组件可以包含零件、装配体、其他智能组件、工具。
      \item 只有上面提到的对象可以被移动。
      \item 库对象的子对象禁止移动。
      \item 禁止对象移动成为库对象的子对象。
\end{enumerate}

\textbf{注：}“子对象”指“直接子对象”和“递归子对象”。

此外，移动参与安装的对象时必须满足安装的前提条件。例如禁止把参与安装的对象移动到装配体下。

会导致位姿计算无限循环的移动是被禁止的。比如，将智能组件安装到的对象移动到该智能组件下。

\subsection{移动的方式}
鼠标右键单击需要移动的对象，在菜单中选择“移动”条目，系统会弹出功能面板。
此时“父对象”按钮处于高亮状态，用户可以直接在布局树上选择目标对象。
也可以单击“父对象”按钮以关闭在布局树上选择目标时的同步功能。
确定目标对象后可以通过面板下方的勾选框决定是否保持位置。

如果移动的是一个安装源对象，则移动操作不会改变该对象的真实位姿。但是会根据“保持位置”选项
设置对象本身的位姿属性。

当移动目标不合法的时候，在布局树上切换到非法目标时面板不会更新该目标。

被移动到智能组件内的对象会显示在该组件的“组成”面板上。

\section{安装操作}
安装是指将一个对象附着在目标上，而后该对象会随目标而运动。

\subsection{安装的规则}
可以进行安装的物体：零件、装配体、智能组件、工具、设备、机器人。其中机器人只能安装到设备的装载坐标系
上。

可以被安装到的物体：零件、装配体、智能组件、连杆、工具坐标系、设备坐标系、工具数据。

被装配体包含的物体禁止参与安装。如果希望安装到一个次级单位上请使用智能组件封装。

库对象一经导入，其子对象的安装状态就不可以被更改。即处于未安装状态的不允许安装，
已经处于安装状态的不允许拆卸或修改安装目标。
但允许其他对象安装到库对象或其子对象，也允许库对象作为一个整体进行安装。

\subsection{安装的方式}
鼠标右键单击需要移动的物体，在菜单中选择“安装”条目，系统会弹出功能面板。
此时“目标对象”按钮处于高亮状态，用户可以直接在布局树上选择目标对象。
如果目标对象是机械装置，面板会扩展出其对应的候选列表。
用户在确定目标对象后可以通过面板下方的勾选框决定是否保持位置，点击“确认”按钮后即可完成安装。

当安装目标不合法的时候，在布局树上选择非法的目标时面板不会更新该目标。

\subsection{安装到tool0}
\label{sec:attachToTool0}
当用户将工具安装到机器人的tool0(默认工具数据)时，系统会获取该工具的工具坐标系，并计算其相对于
工具的位姿。随后使用该位姿为机器人创建一个工具数据。

如果安装一个包含功能角色的智能组件到tool0，系统会获取功能角色的工具坐标系，并计算其相对于
智能组件的位姿。随后使用该位姿为机器人创建一个工具数据。

这个新创建的工具数据会被设置为工作站任务的活跃工具数据。

如果撤消安装命令，这个新创建的工具数据会被机器人删除。

\subsection{把机器人安装到装载坐标系}
当用户将机器人安装到设备的装载坐标系时，会在控制器里为装载坐标系创建一个机械单元，并加入机器人机械单
元所在的机械单元组，此外，还会把移动机器人机械单元基坐标系的对象设置为新创建的机械单元。

新创建的机械单元会被设置为激活状态。

\subsection{注意事项}
\begin{itemize}
      \item 如果修改一个处于安装状态的物体的位姿，修改的实际上是安装状态的性质而不是物体自身的位姿属性。
      \item 当物体同时拥有安装父对象和逻辑父对象时，位姿只受安装父对象的影响。
      \item 如果安装会导致物体位姿计算的无限循环，这种安装被禁止。例如，智能组件不能安装到自己的子对象。
\end{itemize}

\section{删除}
删除对象。注意：参与安装的对象无法直接删除，需要首先执行拆卸操作。

\section{拆卸}
右键点击处于安装状态的对象，选择拆卸选项。或者右键点击处于安装的目标对象下的安装条目，选择拆卸选项。

系统会询问是否保持当前位置，如果选择“是”则源物体会保持当前位姿；如果选择“否”则源物体会使用其本身的位
姿属性，并叠加当前的父对象位姿。

\subsection{从tool0上拆卸}
\label{sec:detachFromTool0}
从tool0上拆卸对象时系统不会变更或删除工具数据。

\subsection{从装载坐标系上拆卸机器人}
从装载坐标系上拆卸机器人时，会把移动机器人机械单元基座标系的对象设置为空，然后把装载坐标系对应的机械
单元从机械单元组里移出并且从控制器里删除。

\section{保存为库文件}
如果对象处于断开库连接状态，则可以将其保存为库文件。

保存成的库文件可被导入用户库功能导入。

目前支持保存到库的对象种类为机器人和自定义智能组件。

保存到库后，对象处于库连接状态，此时库内包含的状态不可以被修改。例如，机器人不能进行修改或拆解，
自定义智能组件的子组件不能被删除，移动层级或设置位姿等。

\section{断开库连接}
将从系统库或用户库导入的对象断开和库文件的连接，将其所有内容直接包含在工作站中。工作站的体积和保存
时间会变大。

\section{设置本地原点}
修改对象自身的位姿，但保持其父对象和子对象的位姿不变。

实体没有这个选项。由于几何信息是由实体提供的，所以这个功能相当于移动了对象的本地原点，而保持实体不动。

\section{机器人相关菜单}

\subsection{回到机械原点}

让机器人回到Home位姿。

\subsection{关节点动}
手动移动机器人的各个关节。

Cfg为机器人当前构型配置数据。

TCP为当前TCP位姿。切换活跃工具数据会重新计算当前TCP位姿。

Step指定一次变动的数值。

\subsection{直线点动}
在选定的坐标系中直线移动机器人工具。

TCP为当前TCP位姿。切换活跃工具数据会重新计算当前TCP位姿。

Cfg为机器人当前构型配置数据。直线点动不允许机器人构型的cfx发生变化，即机器人无法经过奇异点，因为cfx
发生变化一定会导致机器人经过奇异点。

Step指定一次变动的数值。

\subsection{位姿管理}

位姿管理面板让用户新建或修改机器人的预设关节位置。

每个机械装置都有一个HomePose，保存机械装置的默认关节位置，回到机械原点功能将机器人关节设置为HomePose.

\subsection{修改}
如果机器人处于断开库连接状态，则可以修改机器人。详情见机械装置建模面板的说明。

\subsection{分解}
如果机器人处于断开库连接状态，则可以分解机器人。

分解机器人将机器人分解成几何模型。它所关联的工作站任务及数据也被删除。

\subsection{可被传感器检测}
设置机器人是否可以被传感器智能组件检测到。

\subsection{删除}
从工作站中删除机器人。机器人的工作站任务和关联的虚拟控制器系统也会一起删除。

此操作不可撤销。

\subsection{可见}
节点对象可见时，可见菜单项显示对勾图标；节点对象不可见时，节点文字和图标置灰，可见菜单项不显示对勾图标。

多选情况下，如果选中的节点可见状态不统一（含有对象不可见的节点），可见菜单不显示对勾图标，此时点击可见菜单项，可将所有节点的对象设置为可见。

\section{智能组件相关菜单}

\subsection{编辑组件}
在中央区域打开一个新的面板，对组件进行编辑操作。

\subsection{属性}
打开属性查看和编辑对话框，对属性值进行查看和修改。
